package com.RedRiver.hospitalsystem.personal_service.service;

import com.RedRiver.hospitalsystem.personal_service.infra.model.Schedule;
import com.RedRiver.hospitalsystem.personal_service.service.Form.DoctorSchedulesForm;
import com.RedRiver.hospitalsystem.personal_service.service.Form.NewDoctorSchedulesForm;
import com.RedRiver.hospitalsystem.personal_service.service.Form.PageForm;
import com.RedRiver.hospitalsystem.personal_service.service.Form.RegisterInformationForm;
import com.RedRiver.hospitalsystem.personal_service.service.info.ScheduleDoctorInfo;
import com.RedRiver.hospitalsystem.personal_service.service.info.SchedulePageInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.RedRiver.hospitalsystem.result.Result;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 龙世超
 * @since 2022-04-26
 */
public interface ScheduleService extends IService<Schedule> {

    Result<?> increaseSchedules(NewDoctorSchedulesForm newDoctorSchedulesForm);

    IPage<SchedulePageInfo> findPageSchedule(PageForm form);

    Result<?> updateSchedule(DoctorSchedulesForm doctorSchedulesForm);

    Result<?> deleteSchedule(Integer schedulesId);

    Result<Integer> registerInformationByDoctorId(RegisterInformationForm registerInformationForm);

    Result<Integer> cancelRegisterInformationByDoctorId(RegisterInformationForm registerInformationForm);

    Result<List<ScheduleDoctorInfo>> findDoctor(Integer id);
}
